Daniel Boles [Fri, 24 Aug 2018 11:51:21 +0000 (14:51 +0300)]
Application: Do not reuse Ctrl+F1 for help-overlay
It just gets overridden to do something else, as the 1st GtkWidget’s
class_init() adds it as a binding to toggle tooltips with the keyboard.
The last entity to hook it (& return TRUE) is the only one who gets it.
So, worse: If users needed to manually set accels for a ShortcutsWindow,
coincidentally waited until after the 1st GtkWidget init() to do it, &
copied what GtkApplication said in an attempt to be good & consistent —
they inadvertently broke the keyboard tooltips (except for users with a
GDK_KEY_KP_F1 – whatever that is) as their handler blocked GtkWidget’s.
So, one side has to drop this accelerator, and it seems clear that being
able to open tooltips with the keyboard is more important than having a
second accel for the help-overlay. We can make up a replacement later.
https://gitlab.gnome.org/GNOME/gtk/issues/626
Matthias Clasen [Mon, 20 Aug 2018 19:15:27 +0000 (19:15 +0000)]
entry completion: Avoid critical warnings
We must not call move-to-rect unless we have
a transient parent.
Matthias Clasen [Mon, 20 Aug 2018 18:26:28 +0000 (18:26 +0000)]
Merge branch 'fix-shifted-scrolling' into 'master'
gtkscrolledwindow: Consider shift key presses when decelerating
Closes #770
See merge request GNOME/gtk!286
Rico Tzschichholz [Mon, 20 Aug 2018 14:57:54 +0000 (16:57 +0200)]
gesturestylus: Add missing array g-i annotation for *_get_axes params
Piotr Drąg [Sun, 19 Aug 2018 20:05:06 +0000 (22:05 +0200)]
Update POTFILES.in
Matthias Clasen [Sun, 19 Aug 2018 03:50:40 +0000 (03:50 +0000)]
Merge branch 'kill-subsurface' into 'master'
Kill subsurfaces
See merge request GNOME/gtk!299
Matthias Clasen [Sun, 19 Aug 2018 03:41:25 +0000 (03:41 +0000)]
Move tools to a subdirectory
A small step towards splitting up gtk/
Matthias Clasen [Sun, 19 Aug 2018 03:22:03 +0000 (03:22 +0000)]
gdk: Drop GDK_SURFACE_SUBSURFACE
None of the backends supports this type anymore.
Matthias Clasen [Sun, 19 Aug 2018 03:21:41 +0000 (03:21 +0000)]
wayland: drop subsurfaces
We don't use them in GTK+ anymore.
Matthias Clasen [Sun, 19 Aug 2018 03:06:48 +0000 (03:06 +0000)]
Drop gtk_window_set_use_subsurface
This is no longer used.
Matthias Clasen [Sun, 19 Aug 2018 03:00:52 +0000 (03:00 +0000)]
entry completion: stop using subsurfaces
Instead, use a popup and gdk_surface_move_to_rect.
I have not tried to reproduce all details of the old
positioning logic, but moving the popup above/below
the entry works as before.
Jonas Ådahl [Fri, 10 Aug 2018 15:11:46 +0000 (17:11 +0200)]
tooltip: Implement positioning using gdk_window_move_to_rect()
In order to make tooltip positioning portable, make use of the
move_to_rect API. Some semantical changes are made, as identical
semantics cannot be implemented using the move-to-rect API.
Primarily the implemented semantics are:
Position the tooltip in the center pixels slightly below (defaults to 4
units below) the tooltipped widget. This is always the case for keyboard
driven tooltips; the case where it tries to avoid the pointer cursor is
not implemented.
For pointer position triggered tooltips, implement the following
additional semantics:
Use the current cursor size to determine the padding used to enlarge the
anchor rectangle. This is to try to avoid the cursor overlapping the
tooltip.
If the anchor rectangle is too tall (meaning if we'd be constrained
and flip on the Y axis, it'd flip too far away from the originally
intended position), rely only on the pointer position to position the
tooltip. The approximate pointer cursor rectangle is used as a anchor
rectangle. Ideally we should use the actual pointer cursor rectangle
(image used as well as hotspot coordinate), but we don't have API to
get that information.
If the anchor rectangle isn't to tall, just make sure the tooltip isn't
too far away from the pointer position on the X axis.
Closes: #134
Closes: #432
Closes: #574
Closes: #579
Closes: #878
Matthias Clasen [Sun, 19 Aug 2018 01:21:46 +0000 (01:21 +0000)]
gdk/wayland: Avoid idempotent wl_subsurface.set_position calls
These may not result on wl_surface.frame callbacks, yet we do trigger
a frame clock tick that would get stuck on the lack of such callback.
https://bugzilla.gnome.org/show_bug.cgi?id=784314
https://gitlab.gnome.org/GNOME/gtk/issues/844
Closes: #844
Matthias Clasen [Sun, 19 Aug 2018 01:16:51 +0000 (01:16 +0000)]
gdk/wayland: Always map windows 'moved-to-rect' as popups
Only popups can make use of the move-to-rect semantics so it makes no
sense to try anything other surface type.
Matthias Clasen [Sun, 19 Aug 2018 01:15:28 +0000 (01:15 +0000)]
gdk/wayland: Don't remap non-subsurface as subsurface
Let's just use the fact that a window was mapped as a subsurface to
remap it above another transient parent instead of relying on the more
complicated 'should-map-as-subsurface' helper function.
Matthias Clasen [Sat, 18 Aug 2018 20:39:56 +0000 (20:39 +0000)]
Merge branch 'win32-smooth-scrolling-gtk4' into 'master'
GDK W32: Support smooth scrolling (GTK4)
See merge request GNOME/gtk!298
Timm Bäder [Sun, 5 Aug 2018 10:35:38 +0000 (12:35 +0200)]
menu: Remove key_controller member
Unused.
Timm Bäder [Sun, 5 Aug 2018 10:26:19 +0000 (12:26 +0200)]
menu: Remove initially_pushed_in flag
Unused.
Timm Bäder [Sun, 5 Aug 2018 10:25:23 +0000 (12:25 +0200)]
menu: Remove seen_item_enter flag
Unused.
Timm Bäder [Sun, 5 Aug 2018 10:20:25 +0000 (12:20 +0200)]
menu: Remove have_position flag
It's always FALSE.
Timm Bäder [Sun, 5 Aug 2018 10:18:06 +0000 (12:18 +0200)]
menu: Remove an unnecessary gtk_widget_destroy() call
The unref will already properly free the menu item's resources.
Руслан Ижбулатов [Tue, 7 Aug 2018 21:29:21 +0000 (21:29 +0000)]
GDK W32: Support smooth scrolling
Set delta_x or delta_y for GdkScrollEvent.
HIWORD (wParam) in WM_MOUSE(H)WHEEL is the scroll delta.
A delta value of WHEEL_DELTA (which is 120) means scrolling
one full unit of something (for example, a line).
The delta should also be multiplied by the value that the
SystemParametersInfo (SPI_GETWHEELSCROLL(LINES|CHARS), 0, &value, 0)
call gives back, unless it gives back 0xffffffff, in which case
it indicates that scrolling is page- or screen-based, not line-based
(GDK doesn't support that at the moment).
Also, all deltas should be inverted, since MS sends negative deltas
when scrolling down (rotating the wheel back, in the direction of
the user).
With deltas set the mode should be set to GDK_SCROLL_SMOOTH.
Fixes issue 1263.
Matthias Clasen [Fri, 17 Aug 2018 21:45:11 +0000 (21:45 +0000)]
Don't fail the build if c++ isn't found
The intention of this check was to skip the keyword
test if no c++ compiler is found. But the meson
docs say that add_languages() will abort unless we
pass required: false.
Matthias Clasen [Fri, 17 Aug 2018 12:35:46 +0000 (12:35 +0000)]
Merge branch 'fix-shell-colorpicker' into 'master'
colorpickershell: Unpack the tuple returned from PickColor()
See merge request GNOME/gtk!296
Matthias Clasen [Wed, 15 Aug 2018 23:21:15 +0000 (23:21 +0000)]
print portal: don't leak window handles
Pointed out by Christian Persch.
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1274
Matthias Clasen [Wed, 15 Aug 2018 23:13:15 +0000 (23:13 +0000)]
print portal: Plug a memory leak
Pointed out by Christian Persch.
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1271
Matthias Clasen [Wed, 15 Aug 2018 22:53:05 +0000 (22:53 +0000)]
Use defines for bus names
This helps eradicate typos (we had some here).
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1267
Matthias Clasen [Wed, 15 Aug 2018 22:00:13 +0000 (22:00 +0000)]
Merge branch 'sort' into 'master'
updateiconcache: Sort list of entries
See merge request GNOME/gtk!297
Matthias Clasen [Mon, 6 Aug 2018 19:17:06 +0000 (15:17 -0400)]
font chooser: Remove an unneeded ifdef
We can just always create the axes hashtable.
Bernhard M. Wiedemann [Wed, 15 Aug 2018 01:11:21 +0000 (03:11 +0200)]
updateiconcache: Sort list of entries
because filesystem readdir order is indeterministic.
Without this patch, building openSUSE's balsa package
had variations between builds in /usr/share/balsa/icon-theme.cache
Matthias Clasen [Mon, 13 Aug 2018 19:33:56 +0000 (19:33 +0000)]
Merge branch 'master' into 'master'
window: Fix memory leak
See merge request GNOME/gtk!295
Iain Lane [Mon, 13 Aug 2018 12:52:41 +0000 (13:52 +0100)]
colorpickershell: Unpack the tuple returned from PickColor()
When calling PickColor on org.gnome.Shell, we get back an "a{sv}", which
GDBus provides to us as "(a{sv})".
At the minute we're not unpacking this tuple, and so picking fails with
messages like:
GLib-CRITICAL **: 13:38:19.439: g_variant_lookup_value: assertion 'g_variant_is_of_type (dictionary, G_VARIANT_TYPE ("a{s*}")) || g_variant_is_of_type (dictionary, G_VARIANT_TYPE ("a{o*}"))' failed
Gtk-WARNING **: 13:38:19.439: Picking color failed: No color received
Let's unpack it.
Yi-Soo An [Mon, 13 Aug 2018 08:21:42 +0000 (17:21 +0900)]
window: Fix memory leak
https://gitlab.gnome.org/GNOME/gtk/issues/1268
Emin Tufan Çetin [Sun, 12 Aug 2018 10:47:44 +0000 (10:47 +0000)]
Update Turkish translation
Piotr Drąg [Sat, 11 Aug 2018 22:01:28 +0000 (00:01 +0200)]
Update Polish translation
Matthias Clasen [Tue, 7 Aug 2018 10:01:09 +0000 (10:01 +0000)]
Merge branch 'gtk-4-improve-error-message' into 'master'
gtkplacessidebar: Improve error message when unlocking volume fails
See merge request GNOME/gtk!267
Piotr Drąg [Mon, 6 Aug 2018 17:01:40 +0000 (19:01 +0200)]
Update Polish translation
Matthias Clasen [Sun, 5 Aug 2018 23:53:02 +0000 (19:53 -0400)]
migration guide: Mention GtkEventBox
Its gone.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1243
Carlos Soriano [Sun, 5 Aug 2018 21:59:27 +0000 (21:59 +0000)]
README: Fix Gdk doc website link
Carlos Soriano [Sun, 5 Aug 2018 20:41:29 +0000 (20:41 +0000)]
README: Document nightly docs location
Useful for exposing the documentation early.
segfault [Mon, 23 Jul 2018 21:35:01 +0000 (23:35 +0200)]
gtkplacessidebar: Improve error message when unlocking volume fails
Aurimas Černius [Sun, 5 Aug 2018 13:06:33 +0000 (16:06 +0300)]
Updated Lithuanian translation
Timm Bäder [Sat, 21 Jul 2018 10:28:14 +0000 (12:28 +0200)]
widget: Rename width and height member to {width,height}_request
Because that's much closer to the meaning of those values.
Timm Bäder [Sat, 21 Jul 2018 08:26:06 +0000 (10:26 +0200)]
main: Pass toplevel_widget directly to GtkWidget API
We already have the toplevel as GtkWidget: toplevel_widget.
Timm Bäder [Sat, 21 Jul 2018 08:00:35 +0000 (10:00 +0200)]
sizerequestcache: Inline out-var assignments
The additional assignment to the old result variable just adds an
indirection even though we know the point where we assign it in all
cases. Just pass the values out and return in those cases instead.
Timm Bäder [Sat, 21 Jul 2018 07:56:38 +0000 (09:56 +0200)]
widgetprivate: Remove useless prototype
We implement that function lower down in that header file.
Timm Bäder [Fri, 20 Jul 2018 18:18:20 +0000 (20:18 +0200)]
pathbar: Remove priv pointer
Timm Bäder [Fri, 20 Jul 2018 17:22:50 +0000 (19:22 +0200)]
menuitem: Don't redraw unnecessarily
The gtk_widget_(un)set_state_flags calls before will do this if
necessary.
Timm Bäder [Fri, 20 Jul 2018 17:19:37 +0000 (19:19 +0200)]
menu: Use correct content height
Timm Bäder [Fri, 20 Jul 2018 16:43:26 +0000 (18:43 +0200)]
menu: Allocate children according to scroll_offset
This was done by simply moving the bin_window before but now we have to
do it ourselves.
Timm Bäder [Fri, 20 Jul 2018 15:59:35 +0000 (17:59 +0200)]
levelbar: Don't return a double value from a gboolean function
Timm Bäder [Thu, 19 Jul 2018 17:51:07 +0000 (19:51 +0200)]
acitonbar: Remove snapshot implementation
Timm Bäder [Thu, 19 Jul 2018 17:12:25 +0000 (19:12 +0200)]
modelbutton: Remove snapshot implementation
Previously, GtkBin was only snapshot'ing its one and only child, but
nowadays it doesn't implement snapshot at all and the default
implementation in GtkWidget just snapshots all child widgets, which is
exactly what the implementation in gtkmodelbutton.c was doing.
Matthias Clasen [Sun, 5 Aug 2018 01:39:10 +0000 (21:39 -0400)]
Make color picker circular
The need for center alignment was pointed out by Timm Baeder.
Sebastian Keller [Sat, 4 Aug 2018 14:24:33 +0000 (16:24 +0200)]
gtkscrolledwindow: Consider shift key presses when decelerating
Otherwise horizontal scrolling using the shift key would decelerate
vertically.
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/770
Mario Blättermann [Sat, 4 Aug 2018 11:25:21 +0000 (11:25 +0000)]
Update German translation
Ernestas Kulik [Fri, 3 Aug 2018 10:45:04 +0000 (10:45 +0000)]
Merge branch 'sidebar-spinner-visibility' into 'master'
sidebarrow: Hide busy_spinner by default
See merge request GNOME/gtk!285
Ernestas Kulik [Fri, 3 Aug 2018 10:29:07 +0000 (13:29 +0300)]
sidebarrow: Hide busy_spinner by default
Since the original implementation was likely based on GTK+ 3, the change
in default visibility might have not been considered, which results in
all rows suddenly sporting a visible spinner when opening a fresh file
chooser.
Matthias Clasen [Fri, 3 Aug 2018 02:09:09 +0000 (02:09 +0000)]
Merge branch 'fix-app-id' into 'master'
Make xdg-shell's app_id match GApplication's application-id property
Closes #653
See merge request GNOME/gtk!284
Matthias Clasen [Fri, 3 Aug 2018 00:55:07 +0000 (20:55 -0400)]
color picker: Also try kwin
use a kwin color picker when we run under kwin.
Matthias Clasen [Fri, 3 Aug 2018 00:54:21 +0000 (20:54 -0400)]
Only use the portal color picker when appropriate
This is just moving this check around.
Matthias Clasen [Fri, 3 Aug 2018 00:53:37 +0000 (20:53 -0400)]
Add a kwin color picker
This uses the org.kde.kwin.ColorPicker interface.
Benjamin Otte [Thu, 2 Aug 2018 14:14:10 +0000 (14:14 +0000)]
Merge branch 'gbsneto/issue-1258' into 'master'
listbox: Unparent child after removing from sequence
Closes #1258
See merge request GNOME/gtk!283
Georges Basile Stavracas Neto [Thu, 2 Aug 2018 06:29:33 +0000 (03:29 -0300)]
listbox: Store child iter in a variable when removing
Unparenting a GtkListBoxRow can drop its last reference, which
will free its memory. Right after unparenting, though, we were
accessing the row's iter - which assumes that the row is still
alive. This causes a crash when, for example, binding two or
more models to the listbox.
Fix that by storing the iter in a variable, and not trying to
access it after unparenting. After unparenting, the variables
that are potentially garbage were explicitly assigned NULL for
clarity.
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1258
Guido Günther [Thu, 2 Aug 2018 09:03:41 +0000 (11:03 +0200)]
demos: Make desktop file names match the application id
Guido Günther [Thu, 2 Aug 2018 09:03:41 +0000 (11:03 +0200)]
examples: Use appliction id as desktop file base name
Guido Günther [Thu, 2 Aug 2018 09:03:41 +0000 (11:03 +0200)]
docs: Explain desktop file id == application_id in migration guide
Guido Günther [Thu, 2 Aug 2018 09:03:41 +0000 (11:03 +0200)]
gdk: Use application_id as xdg_shell's app_id if available
This (manually) reverts commit
e1fd87728dd841cf1d71025983107765e395b152
This makes sure xdg_shell's app_id matches the DBus name of the the
appliation when using GtkApplication. It also allows the compositor to
derive the desktop file ID from the app_id:
https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml?id=
298d888ac718eae57ff2245d373d4327074506ea#n598
Closes #653
Benjamin Otte [Tue, 31 Jul 2018 19:48:39 +0000 (21:48 +0200)]
container: Remove focus chains
They're prectically unused.
Widgets who want to influcence the focus chain behavior should implement
GtkWidgetClass::focus and deal with focus there.
Benjamin Otte [Tue, 31 Jul 2018 18:58:10 +0000 (20:58 +0200)]
widgetfocus: Fix copy/paste error
This lead to erratic focus behavior with <Tab> in hboxes, where the
smallest child got focus first instead of the leftmost child.
Benjamin Otte [Tue, 31 Jul 2018 05:24:45 +0000 (07:24 +0200)]
colorpicker: Fix gcc warning
Matthias Clasen [Tue, 31 Jul 2018 17:29:32 +0000 (13:29 -0400)]
Mention gtk_widget_show_all in the migration guide
This function is gone.
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1242
Matthias Clasen [Tue, 31 Jul 2018 11:37:28 +0000 (11:37 +0000)]
Merge branch 'issue1214-tooltips-win32-gtk4' into 'master'
Gdk-Win32: Correct handling of transient state changes
See merge request GNOME/gtk!280
Luca Bacci [Tue, 31 Jul 2018 08:50:06 +0000 (10:50 +0200)]
Gdk-Win32: Correct handling of transient state changes
See merge request !248
Benjamin Otte [Tue, 31 Jul 2018 04:44:23 +0000 (06:44 +0200)]
bindings: Remove GTK_TYPE_IDENTIFIER
bindings now treat identifiers and strings the same way.
The only difference was that one allowed lookup of enum/flags by name
while the other didn't and g_warning()ed. Now both work.
Matthias Clasen [Mon, 30 Jul 2018 21:59:16 +0000 (17:59 -0400)]
color picker: Better debug spew
This will help in debugging issues.
Marek Cernocky [Mon, 30 Jul 2018 21:13:35 +0000 (23:13 +0200)]
Updated Czech translation
Benjamin Otte [Mon, 30 Jul 2018 18:15:16 +0000 (20:15 +0200)]
gdk: Fix Windows and OS X backend for keyevent.string removal
Benjamin Otte [Mon, 30 Jul 2018 17:58:38 +0000 (19:58 +0200)]
treeview: Fix compiler warning
Benjamin Otte [Sat, 28 Jul 2018 18:07:43 +0000 (20:07 +0200)]
gdk: Remove key_event->string and key_event->length
They're unused.
Benjamin Otte [Sat, 28 Jul 2018 18:07:10 +0000 (20:07 +0200)]
gdk: Remove gdk_event_get_string()
You want to use an IM module to get strings out of keypresses, not some
crude hack that only works on X11 and Wayland anyway.
Piotr Drąg [Mon, 30 Jul 2018 14:31:53 +0000 (16:31 +0200)]
Update POTFILES.skip
Marek Cernocky [Mon, 30 Jul 2018 13:08:57 +0000 (15:08 +0200)]
Updated Czech translation
Mohammed Sadiq [Mon, 30 Jul 2018 05:25:52 +0000 (10:55 +0530)]
colorpickerportal: Fix memory leak
Carlos Garnacho [Mon, 30 Jul 2018 12:19:07 +0000 (14:19 +0200)]
inspector: Remove unnecessary cast
Pointed out by Timm.
Matthias Clasen [Mon, 30 Jul 2018 12:04:05 +0000 (12:04 +0000)]
Merge branch 'gtk-4-add-spinner-to-sidebar-row' into 'master'
gtkplacessidebar: Show busy spinner in sidebar row during mount ops
See merge request GNOME/gtk!261
Carlos Garnacho [Mon, 30 Jul 2018 11:25:24 +0000 (11:25 +0000)]
Merge branch 'wip/carlosg/event-final-cleanup' into 'master'
Wip/carlosg/event final cleanup
See merge request GNOME/gtk!279
Carlos Garnacho [Mon, 30 Jul 2018 11:13:24 +0000 (13:13 +0200)]
tests: Port testwidgetfocus to using a motion controller
Carlos Garnacho [Thu, 28 Jun 2018 18:32:10 +0000 (20:32 +0200)]
demos: Update changedisplay demo to using GtkGesture
Carlos Garnacho [Thu, 28 Jun 2018 17:48:00 +0000 (19:48 +0200)]
tests: Port motion-compression to using a motion controller
Carlos Garnacho [Wed, 27 Jun 2018 12:18:50 +0000 (14:18 +0200)]
gtkscrolledwindow: Use controller for motion capturing
Perform scrollbar visibility checks through a motion controller,
always based on GtkScrolledView-relative coordinates. The captured
event handler remains though, for a tiny bit of GDK_SCROLL event
handling.
Carlos Garnacho [Wed, 27 Jun 2018 10:42:06 +0000 (12:42 +0200)]
gtkwindow: Replace captured event handler with motion controller
Carlos Garnacho [Tue, 26 Jun 2018 22:08:56 +0000 (00:08 +0200)]
testsuite: Update window test to use gestures when interactive
Carlos Garnacho [Tue, 26 Jun 2018 22:03:34 +0000 (00:03 +0200)]
tests: Use gesture in testtreepos
Carlos Garnacho [Tue, 26 Jun 2018 21:50:16 +0000 (23:50 +0200)]
tests: Use gesture to popup menu in testiconview
Carlos Garnacho [Tue, 26 Jun 2018 21:37:48 +0000 (23:37 +0200)]
tests: Update testgrid to use gestures
Carlos Garnacho [Tue, 26 Jun 2018 20:51:05 +0000 (22:51 +0200)]
demos: Update hypertext demo to use controllers
Carlos Garnacho [Tue, 26 Jun 2018 20:35:03 +0000 (22:35 +0200)]
demos: Update search_entry2 demo to use key capturing API
No more GdkEvent juggling.
Carlos Garnacho [Tue, 26 Jun 2018 20:16:51 +0000 (22:16 +0200)]
demos: drop "Event axes" demo
It's too lowlevel to be practical anymore with gtk4, and there's
the Paint and Gestures demos to demonstrate input capabilities
better than this.
Carlos Garnacho [Tue, 26 Jun 2018 20:15:27 +0000 (22:15 +0200)]
gtk-demo: Add pad controller handling to "Paint" demo
So it's more lifelike.